﻿#region License Revision: 0 Last Revised: 6/18/2008 11:00 AM
/******************************************************************************
Copyright (c) Microsoft Corporation.  All rights reserved.


This file is licensed under the Microsoft Public License (Ms-PL). A copy of the Ms-PL should accompany this file. 
If it does not, you can obtain a copy from: 

http://www.microsoft.com/resources/sharedsource/licensingbasics/publiclicense.mspx
******************************************************************************/
#endregion // License
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace VIEWS
{
    /// <summary>
    /// Provides data for the <see cref="VEMap.Find">Find</see> method of the <see cref="VEMap"/> class.
    /// </summary>
    public class LoadMapOptions
    {
        private bool showSwitch = true;
        private int tileBuffer = 1;
        // VELatLong latLong, int zoom, VEMapStyle style

        /// <summary>
        /// Gets or sets a value that indicates whether the map view is fixed so that the user cannot change it.
        /// </summary>
        /// <value>
        /// <c>true</c> if the map view is fixed so that the user cannot change it; otherwise <c>false</c>. 
        /// The default is <c>false</c>.
        /// </value>
        public bool IsFixed { get; set; }

        /// <summary>
        /// Gets or sets the map mode.
        /// </summary>
        /// <value>
        /// A <see cref="VEMapMode"/> value indicating the mode. The default is <see cref="VEMapMode.2D">2D</see>.
        /// </value>
        public VEMapMode Mode { get; set; }

        /// <summary>
        /// Gets or sets a value that indicates whether to show the map mode switch on the dashboard control.
        /// </summary>
        /// <value>
        /// <c>true</c> show the map mode switch on the dashboard control; otherwise <c>false</c>. 
        /// The default is <c>true</c>.
        /// </value>
        public bool ShowSwitch { get { return showSwitch; } set { showSwitch = value; } }

        /// <summary>
        /// Gets or sets the number of tiles to load beyond the visible area.
        /// </summary>
        /// <value>
        /// The number of tiles to load beyond the visible area. The default is <c>1</c>.
        /// </value>
        /// <remarks>
        /// An increased tile buffer may improve scrolling in low bandwidth scenarios. This member is ignored in 3D mode.
        /// </remarks>
        public int TileBuffer
        {
            get
            {
                return tileBuffer;
            }
            set
            {
                if (value < 1) { throw new ArgumentOutOfRangeException("value"); }
                tileBuffer = value;
            }
        }

        /// <summary>
        /// An optional <see cref="VEMapOptions"/> instance that provides additional map options.
        /// </summary>
        public VEMapOptions MapOptions { get; set; }

    }
}
